package com.ky.tms.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author chengkaimao
 * @since 2020-03-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tms_cost")
public class TmsCost implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单loadno
     */
    private String loadNo;

    /**
     * 订单id
     */
    private String orderIds;

    /**
     * 费用类型
     */
    private String feeType;

    /**
     * 提货费
     */
    private BigDecimal pickFee;

    /**
     * 干线费
     */
    private BigDecimal arteryFee;

    /**
     * 送货费
     */
    private BigDecimal dropoffFee;

    /**
     * 加点费
     */
    private BigDecimal workoverFee;

    /**
     * 装货费
     */
    private BigDecimal loadupFee;

    /**
     * 卸货费
     */
    private BigDecimal loadoffFee;

    /**
     * 包车费
     */
    private BigDecimal carFee;

    /**
     * 燃油补助费
     */
    private BigDecimal fuelFee;

    /**
     * 加班费
     */
    private BigDecimal callbackFee;

    /**
     * 押车费
     */
    private BigDecimal escortinFee;

    /**
     * 小费
     */
    private BigDecimal tipFee;

    /**
     * 短驳费
     */
    private BigDecimal shuttleFee;

    /**
     * 费用状态
     */
    private String status;

    /**
     * 车牌号
     */
    private String carNo;

    /**
     * 司机
     */
    private String driver;

    /**
     * 司机电话
     */
    private String drPhone;

    /**
     * 司机身份证
     */
    private String drIdcard;

    /**
     * 账户名
     */
    private String accountName;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 支付日期
     */
    private LocalDate payDate;

    /**
     * 支付单号
     */
    private String payNo;

    /**
     * 实际总收入
     */
    private BigDecimal realIncome;

    /**
     * 驳回理由
     */
    private String rejectCase;

    /**
     * 申请支付时间
     */
    private LocalDateTime applyPayTime;

    /**
     * 申请支付时间
     */
    private LocalDateTime payAllowTime;

    /**
     * 支付完成时间
     */
    private LocalDateTime payFinishTime;

    /**
     * 费用平均标识
     */
    private String avgFlag;

    /**
     * 实际要车类型
     */
    private String realCarType;

    /**
     * 实际体积单价
     */
    private BigDecimal realVoPrice;

    /**
     * 实际重量单价
     */
    private BigDecimal realWePrice;

    /**
     * 是否有效
     */
    private Integer isValid;

    /**
     * 是否锁定
     */
    private Integer isLock;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private String createUser;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    private String updateUser;



    /**
     * 所关联的订单
     */
    @TableField(exist = false)
    private List<TmsOrder> orders;

    /**
     * 装货地
     */
    @TableField(exist = false)
    private String loadingPlace;

    /**
     * 卸货地
     */
    @TableField(exist = false)
    private String loadoffPlace;

    /**
     * 总费用
     */
    @TableField(exist = false)
    private BigDecimal feeSum;

    /**
     * 查询标识
     */
    @TableField(exist = false)
    private String flag;

    /**
     * 查询时间段
     */
    @TableField(exist = false)
    private List<String> createTimeArray;

}
